import java.util.Scanner;

/**
 * @author vivi
 * @description
 * @date 2024/4/23
 */

//最小公倍数

public class demo1 {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        int b = s.nextInt();
        int c = b;//如果a%b==0，则最大公约数是a
        long d = (long)a * (long)b;
        while(a%b!=0){
            c = a % b;
            a = b;
            b = c;
        }
        System.out.println(d/c);//得到的结果为a
    }

    //辗转相除法
    public static int gcd1(int a, int b) {//调用函数递归 更相减损法
        int max = a>b?a:b;
        int min = a<b?a:b;
        if(max%min==0){
            return min;
        }
        return gcd(max-min,min);//相同思路,将%改为-,优化速度
    }
    public static int gcd(int a, int b)
    {
        if(b == 0) return a;
        return gcd(b, a % b);
    }
    public static void main3(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt(), b = in.nextInt();
        System.out.println(gcd1(a, b));
    }

    public static void main2 (String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();

        for (int i = a; i < a*b; i++) {
            if(i % a == 0 && i % b == 0){
                System.out.println(i);
            }
        }
    }
    public static void main1 (String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();

        if(a < b){
            func(a,b);
        }else {
            func(b,a);
        }
    }

    public static void func(int m , int n){
        int num = m;
        while(num <= m*n){
            if(num % m == 0 && num % n == 0){
                break;
            }
            num++;
        }
        System.out.println(num);
    }
}
